package algo3.juegoCarmenSanDiego.modelo;

import java.util.ArrayList;
import java.util.List;

import algo3.juegoCarmenSanDiego.modelo.TipoEdificioEnum;

import org.w3c.dom.Element;
import org.w3c.dom.Node;


public class Edificio {
	
	private String nombre;
	private List<Pista> pistas = new ArrayList<Pista>();
	private TipoEdificioEnum tipoEdificio;
	
		public Edificio(TipoEdificioEnum untipo){
			this.tipoEdificio = untipo;
		}
		public Edificio(){
		}
		
		public String obtenerPista(Novato novato) {
			return pistas.get(0).getContenidoDePista();
		}
		
		public String obtenerPista(Detective detective) {
			return pistas.get(1).getContenidoDePista();
		}

		public String obtenerPista(Sargento sargento) {
			return pistas.get(2).getContenidoDePista();
		}
		public int obtenerTiempoQueTardaParaEntraraAunEdificio(){
			return 1;
		}

		public void agregarPista(Pista unaPista){
			pistas.add(unaPista);
		}

		public static Edificio cargarAMemoria(Node elementoEdificio) {
			Edificio nuevoEdificio = new Edificio();
			nuevoEdificio.nombre = ((Element) elementoEdificio).getAttribute("nombre");
			nuevoEdificio.asignarEltipoDeEdificio();
			Element elementoPista = (Element) ((Element) elementoEdificio).getElementsByTagName("pistas").item(0);
			for(int i=0; i< elementoPista.getChildNodes().getLength(); i++) {
				Pista pista = Pista.cargarAMemoria(elementoPista.getChildNodes().item(i));
				nuevoEdificio.agregarPista(pista);
			}
			return nuevoEdificio;
		}
		public void asignarEltipoDeEdificio(){
			
			if (this.nombre.equals("museo"))
				this.tipoEdificio=TipoEdificioEnum.museo;
			if (this.nombre.equals("aeropuerto"))
				this.tipoEdificio=TipoEdificioEnum.aeropuerto;
			if (this.nombre.equals("banco"))
				this.tipoEdificio=TipoEdificioEnum.banco;
			if (this.nombre.equals("biblioteca"))
				this.tipoEdificio=TipoEdificioEnum.biblioteca;
			if (this.nombre.equals("bolsa"))
				this.tipoEdificio=TipoEdificioEnum.bolsa;
			if (this.nombre.equals("hotel"))
				this.tipoEdificio=TipoEdificioEnum.hotel;
			if (this.nombre.equals("muelle"))
				this.tipoEdificio=TipoEdificioEnum.muelle;
			if (this.nombre.equals("puerto"))
				this.tipoEdificio=TipoEdificioEnum.puerto;
		}
		public TipoEdificioEnum getTipoDeEdificio(){
			return this.tipoEdificio;
		}
		public String obtenerPista(Investigador investigador) {
			return pistas.get(1).getContenidoDePista();
		}
}


